package com.jgc.stage01.钩子函数;

/**
 * Created by Administrator on 2022/2/10.
 * 当程序正常退出,系统调用 System.exit方法或虚拟机被关闭时才会执行添加的shutdownHook线程。
 * 其中shutdownHook是一个已初始化但并不有启动的线程，当jvm关闭的时候，会执行系统中已经设置的所有通过方法addShutdownHook添加的钩子，
 * 当系统执行完这些钩子后，jvm才会关闭。所以可通过这些钩子在jvm关闭的时候进行内存清理、资源回收等工作
 * Runtime.getRuntime().addShutdownHook(Thread thread)
 */
public class TestShutdownHook {
    public static void main(String[] args) {
        System.out.println("startting working......");
        Runtime.getRuntime().addShutdownHook(new Thread(){
            @Override
            public void run() {
                System.out.println("执行钩子线程");
            }
        });
        System.out.println("program endding");
    }
}
